#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QFile>
#include <QLabel>
#include <QPushButton>
#include <QProgressBar>
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QLineEdit>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
private:
    /* 网络管理 */
    QNetworkAccessManager *networkAccessManager;

    QLabel *label[3];
    QPushButton *pushButton;
    /* 下载进度条 */
    QProgressBar *progressBar;

    QHBoxLayout *hBoxLayout[2];
    QVBoxLayout *vBoxLayout;
    QWidget *hWidget[2];
    QWidget *vWidget;

    /* 链接输入框 */
    QLineEdit *lineEdit;

private slots:
    /* 读取数据 */
    void readyReadData();
    /* 响应完成处理 */
    void replyFinished();
    /* 下载进度管理 */
    void imageDownloadProgress(qint64, qint64);
    /* 点击开始下载 */
    void stratDownload();
    /* 响应错误处理函数 */
    void networkReplyError(QNetworkReply::NetworkError);
};
#endif // MAINWINDOW_H
